package paa.simulator.heuristic;

import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

import paa.simulator.grafo.PessoaVertex;
import paa.simulator.grafo.simple.UndirectedSimpleGraph;

public class IncrementalHeuristic implements Heuristic {

	private TreeSet<PessoaVertex> pessoasOrdenadas;

	public IncrementalHeuristic() {
	}
	
	public int escolheVerticesIniciais(UndirectedSimpleGraph<PessoaVertex> graph, int numberOfVertex) {
		Set<PessoaVertex> pessoas = graph.vertexSet();
		Iterator<PessoaVertex> it = pessoas.iterator();
		
		EdgeComparator ec = new EdgeComparator(graph);
		this.pessoasOrdenadas = new TreeSet<PessoaVertex>(ec);
		while (it.hasNext()) {
			pessoasOrdenadas.add(it.next());
		}
		
		it = pessoasOrdenadas.iterator();
		int half = numberOfVertex / 2;
		for (int i = 0; i < half && it.hasNext(); i++) {
			PessoaVertex vertex = it.next();
			vertex.setAsBuying();
		}
		
		return half;	
	}

	public int refinaEscolha(UndirectedSimpleGraph<PessoaVertex> graph,	int numberOfVertex) {
		return 0;
	}

}
